package com.letv.core.utils;

import android.app.ActivityManager;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.app.ActivityManager.RunningTaskInfo;
import android.app.KeyguardManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.media.AudioManager;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Environment;
import android.os.PowerManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;

import com.letv.android.sdk.R;
import com.letv.core.bean.AlbumNew;
import com.letv.core.bean.PlayRecord;
import com.letv.core.config.LetvConfig;
import com.letv.core.constant.LetvConstant;
import com.letv.core.constant.LetvConstant.DialogMsgConstantId;
import com.letv.core.db.PreferencesManager;

import java.io.File;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

public class LetvUtils {
    private static int versionCode;
    private static String versionName;
    private static String ua;
    public static long mCurrentClickTime = 0;
    public static long mLastClickTime = 0;
    private static final double GB = 1024 * 1024 * 1024.0;
    private static final double MB = 1024 * 1024;
    public static final String URL_FLAG = "http://m.letv.com/search/url?to=";
    public static final String WEB_INNER_FLAG = "letv.com";
    /**
     * 推送类别 picture or word
     * */
    private static boolean sIsPicture = false;

//    public static void setIsPicture(boolean picture) {
//        sIsPicture = picture;
//    }

//    public static boolean getIsPicture() {
//        return sIsPicture;
//    }

    public static int stringToInt(String str) {
        int i = 0;
        try {
            i = Integer.parseInt(str);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return i;
    }

//    public static int getMinusDaysBetweenTwoDate(long endTime, long startTime) {
//        Date endDate = new Date(endTime);
//        Date beginDate = new Date(startTime);
//
//        Calendar c = Calendar.getInstance();
//        c.setTime(endDate);
//        c.set(Calendar.HOUR_OF_DAY, 0);
//        c.set(Calendar.MINUTE, 0);
//        c.set(Calendar.SECOND, 0);
//        c.set(Calendar.MILLISECOND, 0);
//        long endMilliSec = c.getTimeInMillis();
//
//        c.setTime(beginDate);
//        c.set(Calendar.HOUR_OF_DAY, 0);
//        c.set(Calendar.MINUTE, 0);
//        c.set(Calendar.SECOND, 0);
//        c.set(Calendar.MILLISECOND, 0);
//        long startMilliSec = c.getTimeInMillis();
//
//        return (int) ((endMilliSec - startMilliSec) / LetvConstant.OVERDUE_TIME_IN_SECS);
//    }

    /**
     * 改变部分字符串的颜色
     * 
     * @param color 需要处理成的字符颜色 getResources().getColor(R.color.**)
     * @param str 需要处理的字符串
     * @param start 需要处理的字符串开始位置
     * @param end 结束位置
     * @return
     * add by chenlifeng
     */
//    public static SpannableStringBuilder formatVideoTitlePrefix(int color, String str, int start, int end) {
//        SpannableStringBuilder mSpannableStringBuilder = new SpannableStringBuilder(str);
//        mSpannableStringBuilder.setSpan(new ForegroundColorSpan(color), start, end, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
//        return mSpannableStringBuilder;
//    }

    /**
     * 得到客户端版本号
     */
//    public static int getClientVersionCode() {
//        if (versionCode != 0) {
//            return versionCode;
//        }
//
//        try {
//            PackageInfo packInfo = BaseApplication.getInstance().getPackageManager()
//                    .getPackageInfo(BaseApplication.getInstance().getPackageName(), 0);
//            versionCode = packInfo.versionCode;
//        } catch (Exception e) {
//            e.printStackTrace();
//            versionCode = PreferencesManager.getInstance().getSettingVersionCode();
//        }
//
//        return versionCode;
//    }

    /**
     * 得到客户端版本名
     */
//    public static String getClientVersionName() {
//        if (!TextUtils.isEmpty(versionName)) {
//            return versionName;
//        }
//
//        try {
//            PackageInfo packInfo = BaseApplication.getInstance().getPackageManager()
//                    .getPackageInfo(BaseApplication.getInstance().getPackageName(), 0);
//            versionName = packInfo.versionName;
//            return versionName;
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//        return "";
//    }


    /**
     * 服务器端新接口是从5.9以后才开始使用,
     * 目前采取的策略是对外版本号是1.1
     * 对内版本号是5.9.6
     * 乐次元的版本
     * @param context
     * @return
     */
    public static String getClientVersionName(Context context) {
        if (!TextUtils.isEmpty(versionName)) {
            return versionName;
        }
        try {
            PackageInfo packInfo = context.getPackageManager()
                .getPackageInfo(context.getPackageName(), 0);
            versionName = packInfo.versionName;
            return versionName;
        } catch (Exception e) {
            e.printStackTrace();
        }
//        return "";
        return "5.9.6";
    }

    /**
     * 得到操作系统版本号
     */
    public static String getOSVersionName() {
        return android.os.Build.VERSION.RELEASE;
    }

    /**
     * sdk版本
     * 
     * @return
     */
    public static int getSDKVersion() {
        return android.os.Build.VERSION.SDK_INT;
    }

    /**
     * 获取ua
     * 
     * @return
     */
    public static String getUa() {
        return ua;
    }

    /**
     * 设置ua
     * </br>
     * LetvGphoneClient/版本号 + 默认
     */
//    public static void setUa(Context context) {
//        if (!TextUtils.isEmpty(ua)) {
//            return;
//        }
//
//        ua = PreferencesManager.getInstance().getUA();
//        if (!TextUtils.isEmpty(ua)) {
//            ua = "LetvGphoneClient/" + getClientVersionName() + " " + ua;
//            return;
//        }
//
//        if (context instanceof Activity) {
//            WebView webView = new WebView(context);
//            webView.setVisibility(View.GONE);
//            WebSettings settings = webView.getSettings();
//            ua = settings.getUserAgentString();
//            PreferencesManager.getInstance().setUA(ua);
//            ua = "LetvGphoneClient/" + getClientVersionName() + " " + ua;
//        }
//    }

    /**
     * 生成平台设备id
     * 
     * @param context
     * @return
     */
    public static String generateDeviceId(Context context) {
        if(null == context)
        {
            Log.e("LetvSDK","get device id failed,context is null!");
            return null;
        }
        String deviceId = PreferencesManager.getInstance(context).getDeviceId(context);

        if (TextUtils.isEmpty(deviceId)) {
            deviceId = FileUtils.getRelevantData(context, "device_info");
            if (TextUtils.isEmpty(deviceId)) {
                String synthesize = getIMEI(context) + getIMSI(context) + getDeviceName() + getBrandName() + getMacAddress(context);
                deviceId = MD5.MD5Encode(synthesize);

                PreferencesManager.getInstance(context).setDeviceId(context, deviceId);
                FileUtils.saveRelevantData(context, "device_info", deviceId);
            } else {
                PreferencesManager.getInstance(context).setDeviceId(context, deviceId);
            }
        }

        return deviceId;
    }

//    public static String generate_DeviceId() {
//        String str = getIMEI() + getDeviceName() + getBrandName() + getMacAddress();
//        return MD5.MD5Encode(str);
//    }

    public static String generate_DeviceId(Context context) {
        String str = getIMEI(context) + getDeviceName() + getBrandName() + getMacAddress(context);
        return MD5.MD5Encode(str);
    }

    public static String getUUID(Context context) {
        return generateDeviceId(context) + "_" + System.currentTimeMillis();
    }

//    public static String getIMEI() {
//        try {
//            String deviceId = ((TelephonyManager) BaseApplication.getInstance().getSystemService(
//                    Context.TELEPHONY_SERVICE)).getDeviceId();
//            if (null == deviceId || deviceId.length() <= 0) {
//                return "";
//            } else {
//                return deviceId.replace(" ", "");
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//            return "";
//        }
//    }

    public static String getIMEI(Context context) {
        try {
            String deviceId = ((TelephonyManager) context.getSystemService(
                Context.TELEPHONY_SERVICE)).getDeviceId();
            if (null == deviceId || deviceId.length() <= 0) {
                return "";
            } else {
                return deviceId.replace(" ", "");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
    }

//    public static String getIMSI() {
//        String subscriberId = ((TelephonyManager) BaseApplication.getInstance().getSystemService(
//                Context.TELEPHONY_SERVICE)).getSubscriberId();
//        if (null == subscriberId || subscriberId.length() <= 0) {
//            subscriberId = generate_DeviceId();
//        } else {
//            subscriberId.replace(" ", "");
//            if (TextUtils.isEmpty(subscriberId)) {
//                subscriberId = generate_DeviceId();
//            }
//        }
//
//        return subscriberId;
//    }

    public static String getIMSI(Context context) {
        String subscriberId = ((TelephonyManager) context.getSystemService(
            Context.TELEPHONY_SERVICE)).getSubscriberId();
        if (null == subscriberId || subscriberId.length() <= 0) {
            subscriberId = generate_DeviceId(context);
        } else {
            subscriberId.replace(" ", "");
            if (TextUtils.isEmpty(subscriberId)) {
                subscriberId = generate_DeviceId(context);
            }
        }

        return subscriberId;
    }

//    public static String getMacAddress() {
//        WifiInfo wifiInfo = ((WifiManager) BaseApplication.getInstance().getSystemService(Context.WIFI_SERVICE)).getConnectionInfo();
//        if (wifiInfo != null) {
//            return BaseTypeUtils.ensureStringValidate(wifiInfo.getMacAddress());
//        }
//
//        return "";
//    }

    public static String getMacAddress(Context context) {
        WifiInfo wifiInfo = ((WifiManager) context.getSystemService(Context.WIFI_SERVICE)).getConnectionInfo();
        if (wifiInfo != null) {
            return BaseTypeUtils.ensureStringValidate(wifiInfo.getMacAddress());
        }

        return "";
    }

    /**
     * 得到设备名字
     */
    public static String getDeviceName() {
        return BaseTypeUtils.ensureStringValidate(android.os.Build.MODEL);
    }

    /**
     * 得到品牌名字
     */
    public static String getBrandName() {
        String brand = BaseTypeUtils.ensureStringValidate(android.os.Build.BRAND);
        if (TextUtils.isEmpty(brand)) {
            return "";
        }

        return getData(brand);
    }

    public static String getModelName() {
        String model = android.os.Build.MODEL;
        if (model == null || model.length() <= 0) {
            return "";
        } else {
            return getData(model);
        }
    }

    public static String getData(String data) {
        if (data == null || data.length() <= 0) {
            return "-";
        }

        return data.replace(" ", "_");
    }

    /**
     * 是否是高级VIP
     * */
//    public boolean isSViP() {
//        int vipLevel = PreferencesManager.getInstance().getVipLevel();
//        return vipLevel == 2;
//    }


    /**
     * 是否是主进程或者小窗进程
     * 
     * @param context
     * @return
     */
//    public static boolean isRealMainProcess(Context context) {
//        // 当时小窗或者主进程的时候才需要重新初始化
//        String processName = getProcessName(context, android.os.Process.myPid());
//        if (!TextUtils.isEmpty(processName)) {
//            boolean defaultProcess = processName.equals("com.letv.android.client");
//            boolean piProcess = true;
//            if (!defaultProcess) {
//                piProcess = processName.contains("pip_Service");
//            }
//            return piProcess;
//        }
//        return false;
//    }

    /**
     * 获取进程名称
     * 
     * @param cxt
     * @param pid
     * @return
     */
//    public static String getProcessName(Context cxt, int pid) {
//        ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE);
//        List<RunningAppProcessInfo> runningApps = am.getRunningAppProcesses();
//        if (runningApps == null) {
//            return null;
//        }
//        for (RunningAppProcessInfo procInfo : runningApps) {
//            if (procInfo.pid == pid) {
//                return procInfo.processName;
//            }
//        }
//        return null;
//    }

    public static String getUID() {
        if (PreferencesManager.getInstance()!=null){
            if (PreferencesManager.getInstance().isLogin()) {
                return PreferencesManager.getInstance().getUserId();
            }
//            else {
//                return "";
//            }
        }
        return "";

    }

    /**
     * 视频大小转换GB
     * 
     * @param size
     * @param bit
     * @return
     */
//    public static String getGBNumber(long size, int bit) {
//        if (size <= 0) {
//            return "0B";
//        } else if (size < 1000) {
//            return size + "B";
//        } else if (size < 1000 * 1024) {
//            BigDecimal bd = new BigDecimal((size * 1.00f) / DownloadConstant.SIZE_KB);
//            bd = bd.setScale(0, BigDecimal.ROUND_HALF_UP);
//            return dealDotZero(bd) + "K";
//        } else if (size < 1000 * 1024 * 1024) {
//            BigDecimal bd = new BigDecimal((size * 1.0f) / DownloadConstant.SIZE_MB);
//            bd = bd.setScale(bit, BigDecimal.ROUND_HALF_UP);
//            return dealDotZero(bd) + "M";
//        } else {
//            BigDecimal bd = new BigDecimal((size * 1.00f) / DownloadConstant.SIZE_GB);
//            bd = bd.setScale(bit, BigDecimal.ROUND_HALF_UP);
//            return dealDotZero(bd) + "G";
//        }
//    }

    /**
     * 视频大小转换为MB
     * 
     * @param size
     * @return
     */
//    public static String getMBDecimal(long size) {
//        double md = size / DownloadConstant.SIZE_MB;
//        String mS = new Double(new DecimalFormat(".0").format(md)).toString();
//        int start = mS.lastIndexOf(".");
//        if (start > 0) {
//            int len = mS.substring(start + 1).length();
//            if (len == 1) {
//                return mS + "0M";
//            }
//            return mS + "M";
//        }
//        return mS + ".0M";
//    }

    /**
     * 
     * @param val
     * @param bit
     * @return
     */
//    public static String getDecimalsVal(double val, int bit) {
//        BigDecimal bd = new BigDecimal(val);
//        bd = bd.setScale(bit, BigDecimal.ROUND_HALF_UP);
//        return bd.toString() + "";
//    }

    /**
     * 将long类型的数字转化为M类型的数字
     * 
     * @param size
     * @param bit
     * @return
     */
//    public static long getLongMB(long size, int bit) {
//        double div = (double) size / (1024 * 1024.0);
//        return getLongVal(div, bit);
//    }

    /**
     * 
     * @param val
     * @param bit
     * @return
     */
//    public static long getLongVal(double val, int bit) {
//        BigDecimal bd = new BigDecimal(val);
//        bd = bd.setScale(bit, BigDecimal.ROUND_HALF_UP);
//        return bd.longValue();
//    }

    // /**
    // * 计算文件大小 返回用户描述
    // * */
    // public static String getFileSize(long size) {
    // if (size <= 0) {
    // return "";
    // } else if (size < 1000) {
    // return size + "B";
    // } else if (size < 1000 * 1024) {
    // BigDecimal bd = new BigDecimal((size * 1.00f) / 1024);
    // bd = bd.setScale(0, BigDecimal.ROUND_HALF_UP);
    // return dealDotZero(bd) + "K";
    // } else if (size < 1000 * 1024 * 1024) {
    // BigDecimal bd = new BigDecimal((size * 1.0f) / (1024 * 1024));
    // bd = bd.setScale(1, BigDecimal.ROUND_HALF_UP);
    // return dealDotZero(bd) + "M";
    // } else {
    // BigDecimal bd =
    // new BigDecimal((size * 1.00f) / (1024 * 1024 * 1024));
    // bd = bd.setScale(1, BigDecimal.ROUND_HALF_UP);
    // return dealDotZero(bd) + "G";
    // }
    //
    // }

//    private static String dealDotZero(BigDecimal bd) {
//        String origString = bd + "";
//        Log.i("fornia", "check size origString:" + origString);
//        String result = origString;
//        if (origString.indexOf(".") > 0) {
//            origString = origString.replaceAll("0+?$", "");// 去掉多余的0
//            result = origString.replaceAll("[.]$", "");// 如最后一位是.则去掉
//        }
//        return result;
//    }

    /**
     * 检查按钮是否可以点击
     * 
     * @return
     */
//    public static boolean checkClickEvent() {
//        return checkClickEvent(1000);
//    }

    /**
     * 检查按钮点击时间
     * 
     * @param interval
     * @return
     */
//    public static boolean checkClickEvent(long interval) {
//        mCurrentClickTime = System.currentTimeMillis();
//        if (mCurrentClickTime - mLastClickTime > interval) {
//            mLastClickTime = mCurrentClickTime;
//            return true;
//        } else {
//            mLastClickTime = mCurrentClickTime;
//            return false;
//        }
//    }

    /**
     * 获取屏幕是否是亮 还是 暗？
     * 
     * @return
     */
    @SuppressWarnings("deprecation")
//    public static boolean reflectScreenState() {
//        boolean isScreenOn = true;
//        boolean flag = false;
//        try {
//            PowerManager pm = (PowerManager) BaseApplication.getInstance().getSystemService(Context.POWER_SERVICE);
//            isScreenOn = pm.isScreenOn();// 如果为true，则表示屏幕“亮”了，否则屏幕“暗”了。
//
//            KeyguardManager mKeyguardManager = (KeyguardManager) BaseApplication.getInstance().getSystemService(
//                    Context.KEYGUARD_SERVICE);
//            flag = mKeyguardManager.inKeyguardRestrictedInputMode(); // 如果flag为true，表示有两种状态：a、屏幕是黑的
//                                                                     // b、目前正处于解锁状态,
//            // 如果flag为false，表示目前未锁屏
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return isScreenOn && !flag;
//    }

//    @SuppressWarnings("deprecation")
    public static boolean reflectScreenState(Context context) {
        boolean isScreenOn = true;
        boolean flag = false;
        try {
            PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
            isScreenOn = pm.isScreenOn();// 如果为true，则表示屏幕“亮”了，否则屏幕“暗”了。

            KeyguardManager mKeyguardManager = (KeyguardManager) context.getSystemService(
                Context.KEYGUARD_SERVICE);
            flag = mKeyguardManager.inKeyguardRestrictedInputMode(); // 如果flag为true，表示有两种状态：a、屏幕是黑的
            // b、目前正处于解锁状态,
            // 如果flag为false，表示目前未锁屏
        } catch (Exception e) {
            e.printStackTrace();
        }
        return isScreenOn && !flag;
    }

    /**
     * 大媒资频道ID获取频道名称
     * 
     * @param channelId
     * @return
     */
    public static String getChannelName(Context context, int channelId) {
        switch (channelId) {
            case AlbumNew.Channel.TYPE_CAR:
                return context.getString(R.string.channel_car);
            case AlbumNew.Channel.TYPE_CARTOON:
                return context.getString(R.string.channel_cartoon);
            case AlbumNew.Channel.TYPE_DOCUMENT_FILM:
                return context.getString(R.string.channel_document_film);
            case AlbumNew.Channel.TYPE_FASHION:
                return context.getString(R.string.channel_fashion);
            case AlbumNew.Channel.TYPE_FINANCIAL:
                return context.getString(R.string.channel_financial);
            case AlbumNew.Channel.TYPE_FUNNY:
                return context.getString(R.string.channel_funny);
            case AlbumNew.Channel.TYPE_INFORMATION:
                return context.getString(R.string.channel_information);
            case AlbumNew.Channel.TYPE_JOY:
                return context.getString(R.string.channel_joy);
            case AlbumNew.Channel.TYPE_LETV_MAKE:
                return context.getString(R.string.channel_letv_make);
            case AlbumNew.Channel.TYPE_LIFE:
                return context.getString(R.string.channel_life);
            case AlbumNew.Channel.TYPE_MOVIE:
                return context.getString(R.string.channel_movie);
            case AlbumNew.Channel.TYPE_MUSIC:
                return context.getString(R.string.channel_music);
            case AlbumNew.Channel.TYPE_OPEN_CLASS:
                return context.getString(R.string.channel_open_class);
            case AlbumNew.Channel.TYPE_ORIGINAL:
                return context.getString(R.string.channel_original);
            case AlbumNew.Channel.TYPE_OTHERS:
                return context.getString(R.string.channel_others);
            case AlbumNew.Channel.TYPE_PE:
                return context.getString(R.string.channel_pe);
            case AlbumNew.Channel.TYPE_SCIENCE:
                return context.getString(R.string.channel_science);
            case AlbumNew.Channel.TYPE_TOURISM:
                return context.getString(R.string.channel_tourism);
            case AlbumNew.Channel.TYPE_TV:
                return context.getString(R.string.channel_tv);
            case AlbumNew.Channel.TYPE_TVPROGRAM:
                return context.getString(R.string.channel_tvprogram);
            case AlbumNew.Channel.TYPE_TVSHOW:
                return context.getString(R.string.channel_tvshow);
            case AlbumNew.Channel.TYPE_PATERNITY:
                return context.getString(R.string.channel_paternity);
            default:
                return "";
        }
    }

    /**
     * 是否是非WiFi
     * 
     * @param activity
     * @return
     */
//    public static boolean canDownload3g(Activity activity) {
//        if (activity == null) {
//            LogInfo.log("", " canDownload3g  activity == null ");
//            return true;
//        }
//        if (!NetworkUtils.isNetworkConnected(activity)) {
//            if (!NetworkUtils.isWifi()) {
//                if (!PreferencesManager.getInstance().isAllowMobileNetwork()) {
//                    DialogUtil.call(activity, activity.getResources().getString(R.string.dialog_3g_download),
//                            new DialogInterface.OnClickListener() {
//                                @Override
//                                public void onClick(DialogInterface dialog, int which) {
//                                    // stub
//                                    dialog.dismiss();
//                                }
//                            });
//                    return false;
//                }
//            }
//        }
//        return true;
//    }

    /**
     * letv ua
     * 
     * @return
     */
//    public static String createUA(String oldUA) {
//        if (!TextUtils.isEmpty(oldUA)) {
//            return oldUA + " " + "LetvMobileClient_" + getClientVersionCode() + "_" + getSystemName();
//        } else {
//            String ua = "Mozilla/5.0(Linux;U;Android 2.2.1;en-us;Nexus One Build.FRG83) "
//                    + "AppleWebKit/553.1(KHTML,like Gecko) Version/4.0 Mobile Safari/533.1";
//            ua += " " + "LetvMobileClient_" + getClientVersionCode() + "_" + getSystemName();
//            return ua;
//        }
//    }

    public static String createUA(Context context,String oldUA) {
        if (!TextUtils.isEmpty(oldUA)) {
            return oldUA + " " + "LetvMobileClient_" + getClientVersionCode(context) + "_" + getSystemName();
        } else {
            String ua = "Mozilla/5.0(Linux;U;Android 2.2.1;en-us;Nexus One Build.FRG83) "
                + "AppleWebKit/553.1(KHTML,like Gecko) Version/4.0 Mobile Safari/533.1";
            ua += " " + "LetvMobileClient_" + getClientVersionCode(context) + "_" + getSystemName();
            return ua;
        }
    }

    /**
     * 得到设备名字
     * */
    public static String getSystemName() {
        return "android";
    }

    /**
     * 其它页面H5登陆时设置的cookies
     * 
     * @param context
     * @param url
     */
    public static void setCookies(Context context, String url) {
//        String cookie1 = "letvclient_sig=" + MD5.toMd5(LetvConstant.Global.DEVICEID + LetvConstant.MIYUE_ATTENDANCE);
//        String cookie2 = "letvclient_did=" + LetvConstant.Global.DEVICEID;
        String cookie1 = "letvclient_sig=" + MD5.toMd5(LetvUtils.generate_DeviceId(context) + LetvConstant.MIYUE_ATTENDANCE);
        String cookie2 = "letvclient_did=" + LetvUtils.generate_DeviceId(context);

        CookieSyncManager syncManger = CookieSyncManager.createInstance(context);
        CookieManager cookieManager = CookieManager.getInstance();
        String CookieStr = cookieManager.getCookie(url);
        if (CookieStr != null && (CookieStr.contains("letvclient_did") && CookieStr.contains("letvclient_sig"))) {
        } else {
            cookieManager.setAcceptCookie(true);
            // cookieManager.removeSessionCookie();
            cookieManager.setCookie(url, cookie1);
            cookieManager.setCookie(url, cookie2);
            syncManger.sync();
        }
    }

    /**
     * mcc 移动国家代码 mnc 移动网络号码 lac 位置区域码 cid 基站编号 bsss 基站信号强度
     * 
     * @param context
     */
//    public static GSMInfo getGSMInfo(Context context) {
//        try {
//            GSMInfo info = new GSMInfo();
//            TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
//            if (manager != null) {
//                CellLocation cellLocation = manager.getCellLocation();
//                int lac = 0;
//                int cellid = 0;
//                if (cellLocation != null) {
//                    if (cellLocation instanceof GsmCellLocation) {
//                        lac = ((GsmCellLocation) cellLocation).getLac();
//                        cellid = ((GsmCellLocation) cellLocation).getCid();
//                    } else if (cellLocation instanceof CdmaCellLocation) {
//                        cellid = ((CdmaCellLocation) cellLocation).getNetworkId();
//                        lac = ((CdmaCellLocation) cellLocation).getBaseStationId();
//                    }
//                }
//
//                info.setLac(lac);
//                info.setCid(cellid);
//            }
//
//            BDLocation location = LocationToolPlayerLibs.get().location();
//            if (location != null) {
//                info.setLatitude(location.getLatitude());
//                info.setLongitude(location.getLongitude());
//			} else {
//				info.setLatitude(Double.parseDouble(PreferencesManager.getInstance().getLocationLongitude()));
//				info.setLongitude(Double.parseDouble(PreferencesManager.getInstance().getLocationLatitude()));
//			}
//
//            return info;
//        } catch (Exception e) {
//            LogInfo.log("ZSM++ ==== GSM exception e == "+e.getMessage());
//            e.printStackTrace();
//            return null;
//        }
//    }

    /**
     * 验证邮箱格式是否正确
     * 
     * @param email
     * @return
     */
//    public static boolean emailFormats(String email) {
//        if (email == null)
//            return false;
//        String regular = "^\\s*\\w+(?:\\.{0,1}[\\w-]+)*@[a-zA-Z0-9]+(?:[-.][a-zA-Z0-9]+)*\\.[a-zA-Z]+\\s*$";
//        Pattern pattern = Pattern.compile(regular);
//        Matcher matcher = pattern.matcher(email);
//        if (!matcher.matches()) {
//            return false;
//        }
//        return true;
//    }

    /**
     * 短信找回密码
     */
//    public static void retrievePwdBySMS(Context context, String phonenumber) {
//        // Uri smsToUri = Uri.parse("smsto://10690159292121");
//        // Uri smsToUri = Uri.parse("smsto:10690159292121");
//        Uri smsToUri = Uri.parse("smsto:" + phonenumber);
//        Intent mIntent = new Intent(Intent.ACTION_SENDTO, smsToUri);
//        mIntent.putExtra("sms_body", "");
//        context.startActivity(mIntent);
//    }

    /**
     * 判断从全网进区分内外站 包含WEB_INNER_FLAG是内站
     * <p>
     * return: true 内站 ：false 外站
     */

    public static boolean judgeInnerUrl(final String url) {

        return !TextUtils.isEmpty(url) && url.contains(WEB_INNER_FLAG);
    }

    /**
     * 判断从全网进区分内外站 包含URL_FLAG是外站
     * <p>
     * return: true 外站 ：false 内站
     */
//    public static boolean judgeOutSideUrl(final String url) {
//
//        if (!TextUtils.isEmpty(url) && url.contains(URL_FLAG)) {
//
//            // 站外链接
//            return true;
//        }
//        // 站内
//        return false;
//    }

    /**
     * 格式化价格 两位小数还是一位小数
     * */
//    public static String formatDoubleNum(double price, int num) {
//        DecimalFormat format = null;
//        if (num == 1) {
//            format = new DecimalFormat("#0.0");
//            return format.format(price);
//        } else if (num == 2) {
//            format = new DecimalFormat("#0.00");
//            return format.format(price);
//        }
//
//        return String.valueOf(price);
//    }

    /**
     * 标清
     * 
     * @return
     */
//    public static String getStartStreamText() {
//        return TipUtils.getTipMessage(DialogMsgConstantId.CONSTANT_100037,
//                BaseApplication.instance.getString(R.string.detail_hd));
//    }

    /**
     * 流畅
     * 
     * @return
     */
//    public static String getSmoothStreamText() {
//        return TipUtils.getTipMessage(DialogMsgConstantId.CONSTANT_100036,
//                BaseApplication.instance.getString(R.string.detail_smooth));
//    }

    /**
     * 高清
     * 
     * @return
     */
//    public static String getHDstreamText() {
//        return TipUtils.getTipMessage(DialogMsgConstantId.CONSTANT_100038,
//                BaseApplication.instance.getString(R.string.detail_shd));
//    }

    /**
     * 极速
     * 
     * @return
     */
//    public static String getSpeedStreamText() {
//        return TipUtils.getTipMessage(DialogMsgConstantId.CONSTANT_100035,
//                BaseApplication.instance.getString(R.string.detail_topspeed));
//    }

    /**
     * 检查系统应用程序，并打开
     */
//    public static boolean openApp(Context context, String isAppPackageName) {
//        // 应用过滤条件
//        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
//        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
//        PackageManager mPackageManager = BaseApplication.getInstance().getApplicationContext().getPackageManager();
//        List<ResolveInfo> mAllApps = mPackageManager.queryIntentActivities(mainIntent, 0);
//        // 按报名排序
//        Collections.sort(mAllApps, new ResolveInfo.DisplayNameComparator(mPackageManager));
//        for (ResolveInfo res : mAllApps) {
//            // 该应用的包名和主Activity
//            String pkg = res.activityInfo.packageName;
//            String cls = res.activityInfo.name;
//            LogInfo.log("Emerson", "-------pkg = " + pkg + "--cls = " + cls);
//            if (res.activityInfo.packageName.equals(isAppPackageName)) {
//                ComponentName componet = new ComponentName(pkg, cls);
//                Intent intent = new Intent();
//                intent.setComponent(componet);
//                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//                context.startActivity(intent);
//                return true;
//            }
//        }
//        return false;
//    }

    /**
     * 计算视频时长 00:00
     */
//    public static String getNumberTime2(long time_second) {
//
//        Formatter formatter = new Formatter(null, Locale.getDefault());
//        if (time_second < 0) {
//            time_second = 0;
//        }
//        try {
//
//            long seconds = time_second % 60;
//
//            long minutes = (time_second / 60);
//
//            if (minutes > 99) {
//                return formatter.format("%03d:%02d", minutes, seconds).toString();
//            } else {
//                return formatter.format("%02d:%02d", minutes, seconds).toString();
//            }
//
//        } finally {
//            formatter.close();
//        }
//    }

    /**
     * 验证密码是否是 数字和字母，英文符号 长度6-16,区分大小写
     */
//    public static boolean passwordFormat(String password) {
//        if (password == null)
//            return false;
//
//        String regular = "^[a-zA-Z0-9!`~!@#$%^&*()+=|{}':;',//[//].<>/?~！@#￥%……&*（）——+|{}【】‘；：”“’。，、？]{6,16}$";
//        Pattern pattern = Pattern.compile(regular);
//        Matcher matcher = pattern.matcher(password);
//        if (!matcher.matches()) {
//            return false;
//        }
//        return true;
//    }

    /**
     * 验证注册手机号码是否正确
     */
//    public static boolean mobileNumberFormat(String mobiles) {
//        if (mobiles == null) {
//            return false;
//        }
//        Pattern p = Pattern.compile("^(1)\\d{10}$");
//        Matcher m = p.matcher(mobiles);
//        return m.matches();
//    }

    /**
     * letv ua
     * 
     * @param context
     * @return
     */
//    public static String createUA(String oldUA, Context context) {
//        if (!TextUtils.isEmpty(oldUA)) {
//            return oldUA + " " + "LetvMobileClient_" + LetvTools.getClientVersionCode() + "_" + getSystemName();
//        } else {
//            String ua = "Mozilla/5.0(Linux;U;Android 2.2.1;en-us;Nexus One Build.FRG83) "
//                    + "AppleWebKit/553.1(KHTML,like Gecko) Version/4.0 Mobile Safari/533.1";
//            ua += " " + "LetvMobileClient_" + LetvTools.getClientVersionCode() + "_" + getSystemName();
//            return ua;
//        }
//    }

    /**
     * 获取AudioManager
     * 
     * @param context
     * @return
     */
    public static AudioManager getAudioManager(Context context) {
        AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
        if (audioManager != null) {
            if (audioManager.getMode() == AudioManager.MODE_INVALID) {
                audioManager.setMode(AudioManager.MODE_NORMAL);
            }
        }

        return audioManager;
    }

    /**
     * 获取登录用户名称
     * **/
//    public static String getLoginUserName() {
//        if (PreferencesManager.getInstance().isLogin()) {
//            return PreferencesManager.getInstance().getUserName();
//        } else {
//            return "";
//        }
//    }

    /**
     * 根据频道和style区分merge 0 不合并 ， 1 合并
     * */
//    public static int getMerge(String style) {
//        return "1".equals(style) ? 0 : 1;
//    }

    /**
     * 根据style区分视频列表是否列表形势
     * */
//    public static boolean getIsList(String style) {
//        return "1".equals(style) ? false : true;
//    }

    /**
     * -1:按着集数升序; 1:按着集数降序.默认为:-1
     * 根据频道区分 列表是倒序还是正序 ,modified by zengsonghai 20140221
     * */
//    public static String getOrder(int cid) {
//        return (cid == AlbumNew.Channel.TYPE_TVSHOW || cid == AlbumNew.Channel.TYPE_JOY || cid == AlbumNew.Channel.TYPE_PE) ? "1"
//                : "-1";
//    }

    /**
     * 根据数量，计算行数(起点1)
     * */
//    public static int calculateRows(int index, int rowSize) {
//        int a = index % rowSize;
//        int b = index / rowSize;
//
//        return a == 0 ? b : b + 1;
//    }

    /**
     * 根据数量，计算行数（起点0）
     * */
//    public static int calculatePos(int index, int rowSize) {
//        int a = index % rowSize;
//
//        return a;
//    }

    public static String checkUrl(String url) {
        if (url == null)
            return url;
        url.replaceAll(" ", "");
        if (!url.startsWith("http://")) {
            url = "http://" + url;
        }
        return url;
    }

//    public static boolean checkUrl2(String url) {
//        if (url == null)
//            return false;
//        if (url.startsWith("http:")) {
//            return true;
//        }
//        return false;
//    }

    /**
     * 判断轮播或卫视台
     * 
     * @param launchMode
     * @return channelType
     */
//    public static String isLunboOrWeishi(int launchMode) {
//        switch (launchMode) {
//            case PlayConstant.LiveType.PLAY_LIVE_LUNBO:
//                return "1";
//            case PlayConstant.LiveType.PLAY_LIVE_WEISHI:
//                return "2";
//            default:
//                return "2";
//        }
//    }

    /**
     * 根据频道type判断是否轮播或卫视台
     * 
     * @param channelType
     * @return
     */
//    public static boolean isLunboOrWeishiByChannelType(String channelType) {
//        if (!TextUtils.isEmpty(channelType) && (channelType.equals("2") || channelType.equals("1"))) {
//            return true;
//        }
//        return false;
//    }

    /**
     * 相关拼接 id
     * */
//    public static String[] getVideoIdsByVideoList(RelatedVideoList relatedVideoList) {
//        if (relatedVideoList == null)
//            return null;
//        if (relatedVideoList != null) {
//            int length = relatedVideoList.size() % 60 == 0 ? relatedVideoList.size() / 60
//                    : (relatedVideoList.size() / 60 + 1);
//            String ids[] = new String[length];
//
//            for (int i = 0; i < length; i++) {
//                ids[i] = "";
//                for (int j = 0; j < 60; j++) {
//                    int k = i * 60 + j;
//                    if (k >= relatedVideoList.size()) {
//                        break;
//                    }
//                    ids[i] += relatedVideoList.get(k).getId() + ",";
//                }
//                ids[i] = ids[i].substring(0, ids[i].length() - 1);
//            }
//            return ids;
//        }
//        return null;
//    }

    /**
     * 判断是否正在播放
     * 
     * @param startTime
     * @param endTime
     * @return
     */
    public static boolean isPlaying(String startTime, String endTime) {
        if (TextUtils.isEmpty(startTime) || TextUtils.isEmpty(startTime)) {
            return false;
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String currentTime = sdf.format(new Date());
        return currentTime.compareTo(startTime) >= 0 && currentTime.compareTo(endTime) <= 0;
    }

    /**
     * 判断播放是否未开始
     * 
     * @param beginTime
     * @return
     */
//    public static boolean isNotStart(String beginTime) {
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        String currentTime = sdf.format(new Date());
//        return beginTime != null && beginTime.compareTo(currentTime) > 0;
//    }

    /**
     * 判断播放是否结束
     * 
     * @param endTime
     * @return
     */
//    public static boolean isOver(String endTime) {
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        String currentTime = sdf.format(new Date());
//        return endTime != null && endTime.compareTo(currentTime) < 0;
//    }

    /**
     * 根据launchMode获取卫视或轮播type
     * 
     * @return
     */
//    public static String getLunboWeishiType(int launchMode) {
//        switch (launchMode) {
//            case PlayConstant.LiveType.PLAY_LIVE_WEISHI:
//                return DatabaseConstant.ChannelHisListTrace.ChannelType.TYPE_WEISHI;
//            case PlayConstant.LiveType.PLAY_LIVE_LUNBO:
//                return DatabaseConstant.ChannelHisListTrace.ChannelType.TYPE_LUNBO;
//            default:
//                return DatabaseConstant.ChannelHisListTrace.ChannelType.TYPE_WEISHI;
//        }
//    }

    /**
     * 电视台code转为唯一的数字
     * */
//    public static int codeToInt(String code) {
//        if (TextUtils.isEmpty(code)) {
//            return 0;
//        }
//        code = code.toUpperCase();
//        StringBuilder numString = new StringBuilder();
//        HashMap<Character, Integer> hashMap = new HashMap<Character, Integer>();
//        {
//            hashMap.put('A', 1);
//            hashMap.put('B', 2);
//            hashMap.put('C', 3);
//            hashMap.put('D', 4);
//            hashMap.put('E', 5);
//            hashMap.put('F', 6);
//            hashMap.put('G', 7);
//            hashMap.put('H', 8);
//            hashMap.put('I', 9);
//            hashMap.put('J', 10);
//            hashMap.put('K', 11);
//            hashMap.put('L', 12);
//            hashMap.put('M', 13);
//            hashMap.put('N', 14);
//            hashMap.put('O', 15);
//            hashMap.put('P', 16);
//            hashMap.put('Q', 17);
//            hashMap.put('R', 18);
//            hashMap.put('S', 19);
//            hashMap.put('T', 20);
//            hashMap.put('U', 21);
//            hashMap.put('V', 22);
//            hashMap.put('W', 23);
//            hashMap.put('X', 24);
//            hashMap.put('Y', 25);
//            hashMap.put('Z', 26);
//            hashMap.put('0', 27);
//            hashMap.put('1', 28);
//            hashMap.put('2', 29);
//            hashMap.put('3', 30);
//            hashMap.put('4', 31);
//            hashMap.put('5', 32);
//            hashMap.put('6', 33);
//            hashMap.put('7', 34);
//            hashMap.put('8', 35);
//            hashMap.put('9', 36);
//        }
//        if (TextUtils.isEmpty(code)) {
//            return 0;
//        }
//        char[] cs = code.toCharArray();
//
//        for (int i = 0; i < cs.length; i++) {
//            int a = 0;
//            if (hashMap.containsKey(cs[i])) {
//                a = hashMap.get(cs[i]);
//            }
//
//            numString.append(a);
//        }
//        try {
//            return (int) (Long.parseLong(numString.toString()));
//        } catch (Exception e) {
//            return 0;
//        }
//    }

    /**
     * 全角转半角
     * 
     * @param input
     * @return
     */
//    public static String ToDBC(String input) {
//        char[] c = input.toCharArray();
//        for (int i = 0; i < c.length; i++) {
//            if (c[i] == 12288) {
//                c[i] = (char) 32;
//                continue;
//            }
//            if (c[i] > 65280 && c[i] < 65375)
//                c[i] = (char) (c[i] - 65248);
//        }
//        return new String(c);
//    }

    /**
     * 半角转全角
     * 
     * @param input
     * String.
     * @return 全角字符串.
     */
//    public static String ToSBC(String input) {
//        char c[] = input.toCharArray();
//        for (int i = 0; i < c.length; i++) {
//            if (c[i] == ' ') {
//                c[i] = '\u3000';
//            } else if (c[i] < '\177') {
//                c[i] = (char) (c[i] + 65248);
//
//            }
//        }
//        return new String(c);
//    }

    /**
     * 根据不同平台播放记录返回不同的加载提示语
     * 
     * @return
     */
    public static String getPlayRecordType(Context context, PlayRecord record, long btime) {
        String loadingStr = null;
        if (record == null) {
            return null;
        }

        if (record.getPlayedDuration() > 0 && record.getPlayedDuration() != btime) {
            loadingStr = context.getString(R.string.play_record_loading_tag,
                    StringUtils.stringForTimeNoHour(record.getPlayedDuration() * 1000));
        } else {
            loadingStr = TipUtils.getTipMessage(context,DialogMsgConstantId.ON_LOADING, R.string.player_loading);
        }

        return loadingStr;
    }

    /**
     * 轮播台排序
     */
//    public static List<LiveBeanLeChannel> sortChannelList(List<LiveBeanLeChannel> list, SortType sortType) {
//        Collections.sort(list, new CompareTools(sortType));
//        return list;
//    }

//    private static class CompareTools implements Comparator<LiveBeanLeChannel> {
//        SortType sortType;
//
//        /**
//         * @param sortType
//         */
//        public CompareTools(SortType sortType) {
//            super();
//            this.sortType = sortType;
//        }
//
//        @Override
//        public int compare(LiveBeanLeChannel lhs, LiveBeanLeChannel rhs) {
//            if (sortType == SortType.SORT_BYNO) {
//
//                int ihsNo = stringToInt(lhs.getNumericKeys());
//                int rhsNo = stringToInt(rhs.getNumericKeys());
//
//                if (ihsNo < rhsNo) {
//                    return -1;
//                } else if (ihsNo > rhsNo) {
//                    return 1;
//                } else {
//                    return 0;
//                }
//
//            } else if (sortType == SortType.SORT_BYNEWTIME) {
//
//                long ihsTime = lhs.getCurrentmillisecond();
//                long rhsTime = rhs.getCurrentmillisecond();
//                if (ihsTime > rhsTime) {
//                    return -1;
//                } else if (ihsTime == rhsTime) {
//                    return 0;
//                } else {
//                    return 1;
//                }
//            }
//            return 1;
//        }
//    }

    /**
     * 直播根据launchMode返回CHANNEL_TYPE
     * 
     * @param launchMode
     * @return
     */
//    public static String toStringChannelType(int launchMode) {
//        switch (launchMode) {
//            case PlayConstant.LiveType.PLAY_LIVE_LUNBO:
//                return PlayConstant.CHANNEL_TYPE_VALUE_LUNBO;
//            case PlayConstant.LiveType.PLAY_LIVE_WEISHI:
//                return PlayConstant.CHANNEL_TYPE_VALUE_WEISHI;
//            case PlayConstant.LiveType.PLAY_LIVE_SPORTS:
//                return PlayConstant.CHANNEL_TYPE_VALUE_SPORTS;
//            case PlayConstant.LiveType.PLAY_LIVE_MUSIC:
//                return PlayConstant.CHANNEL_TYPE_VALUE_MUSIC;
//            case PlayConstant.LiveType.PLAY_LIVE_ENTERTAIN:
//                return PlayConstant.CHANNEL_TYPE_VALUE_ENT;
//            case PlayConstant.LiveType.PLAY_LIVE_OTHER:
//                return PlayConstant.CHANNEL_TYPE_VALUE_OTHER;
//            default:
//                return PlayConstant.CHANNEL_TYPE_VALUE_REMEN;
//        }
//    }

    /**
     * 根据liveId获取Channel
     * 
     * @param liveid
     * @return
     */
//    public static String getChannelFromLiveid(String liveid) {
//        if (!TextUtils.isEmpty(liveid) && liveid.length() > 1) {
//            return liveid.substring(0, 2);
//        } else {
//            return "";
//        }
//    }

    /**
     * 根据liveId获取Category
     * 
     * @param liveid
     * @return
     */
//    public static String getCategoryFromLiveid(String liveid) {
//        if (!TextUtils.isEmpty(liveid) && liveid.length() > 4) {
//            return liveid.substring(2, 5);
//        } else {
//            return "";
//        }
//    }

    /**
     * 根据liveId获取Season
     * 
     * @param liveid
     * @return
     */
//    public static String getSeasonFromLiveid(String liveid) {
//        if (!TextUtils.isEmpty(liveid) && liveid.length() > 8) {
//            return liveid.substring(5, 9);
//        } else {
//            return "";
//        }
//    }

    /**
     * 根据liveId获取Turn
     * 
     * @param liveid
     * @return
     */
//    public static String getTurnFromLiveid(String liveid) {
//        if (!TextUtils.isEmpty(liveid) && liveid.length() > 11) {
//            return liveid.substring(9, 12);
//        } else {
//            return "";
//        }
//    }

    /**
     * 根据liveId获取Game
     * 
     * @param liveid
     * @return
     */
//    public static String getGameFromLiveid(String liveid) {
//        if (!TextUtils.isEmpty(liveid) && liveid.length() > 15) {
//            return liveid.substring(12, 16);
//        } else {
//            return "";
//        }
//    }

    /**
     * 是否已经下载完成
     * 
     * @param id
     * @return
     */
    public static boolean isInFinish(long id) {
        return false;
//        return DBManager.getInstance().getDownloadTrace().isInFinish(id + "")
//                || DBManager.getInstance().getWorldCupTrace().isInFinish(id + "");
    }

    // public static String getShareHint(String name, int type, int id, int order, int vid) {
    // Share share = LetvShareControl.getInstance().getShare();
    // String orderStr = LetvNumberFormat.format(order + "");
    // String replace_url = null;
    // LetvHttpLog.Err("type =" + type + "  id =" + id + "  vid=" + vid);
    //
    // String serverHint = "";
    // MessageBean dialogMsgByMsg =
    // DBManager.getInstance().getDialogMsgTrace().getDialogMsgByMsgId(DialogMsgConstantId.CONSTANT_20024);
    // if (dialogMsgByMsg == null) {
    // serverHint = "，很好看！推荐给小伙伴们！观看更多体育、娱乐、音乐、综艺等精彩直播节目，请猛戳：http://t.cn/ShR0Hy";
    // } else {
    // serverHint = " ，" + dialogMsgByMsg.message;
    // }
    //
    // if (share != null) {
    // if (type == 1) {
    // replace_url = share.getVideo_url().replace("{vid}", vid + "");
    // replace_url = replace_url.replace("{index}", "1");
    // replace_url = replace_url.replace("{aid}", id + "");
    // return TextUtil.getString(R.string.share_msg_album_playforsina, name, replace_url, serverHint);
    // } else if (type == 2) {
    // replace_url = share.getVideo_url().replace("{aid}", id + "");
    // replace_url = replace_url.replace("{index}", "1");
    // replace_url = replace_url.replace("{vid}", vid + "");
    // return TextUtil.getString(R.string.share_msg_album_play, name, replace_url, serverHint);
    // }
    // }
    // return null;
    // }
    //
    // /**
    // * 直播轮播台分享文案
    // *
    // * @param name
    // * @param liveUrl
    // * @return
    // */
    // public static String getShareHitFroLive(String name, String liveUrl, String defaultText) {
    // String serverHint = "";
    // // MessageBean dialogMsgByMsg =
    // DBManager.getInstance().getDialogMsgTrace().getDialogMsgByMsgId(DialogMsgConstantId.CONSTANT_20024);
    // // if (dialogMsgByMsg == null) {
    // serverHint = defaultText;
    // // } else {
    // // serverHint = " ， " + dialogMsgByMsg.message;
    // // }
    //
    // return TextUtil.getString(R.string.share_live_hint, name, liveUrl, serverHint);
    // }
    //
    // public static String getSharePlayUrl(int type, int id, int order, int vid) {
    // Share share = LetvShareControl.getInstance().getShare();
    // String orderStr = LetvNumberFormat.format(order + "");
    // String replace_url = null;
    // LogInfo.log("getSharePlayUrl", "type ===" + type + "  id =" + id + "  vid=" + vid);
    // LetvHttpLog.Err("type =" + type + "  id =" + id + "  vid=" + vid);
    // if (share != null) {
    //
    // replace_url = share.getVideo_url().replace("{vid}", vid + "");
    // replace_url = replace_url.replace("{index}", "1");
    // replace_url = replace_url.replace("{aid}", id + "");
    // return replace_url;
    // }
    // return null;
    // }

//    public static int getOSVersionCode() {
//        int version = -1;
//        try {
//            version = Integer.valueOf(Build.VERSION.SDK_INT);
//        } catch (NumberFormatException e) {
//            e.printStackTrace();
//        }
//        return version;
//    }

    /**
     * 得到客户端版本信息
     * 
     * @param context
     * @return
     */
    public static int getClientVersionCode(Context context) {
        if (context == null) {
            return 0;
        }
        try {
            PackageInfo packInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
            return packInfo.versionCode;
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        }
        return 0;
    }

    /**
     * 通过获取进程判断是在后台还是处于前台
     * 
     * @return
     */
    public static boolean isAppOnForeground(Context context) {
        ActivityManager activityManager = (ActivityManager) context.getApplicationContext().getSystemService(
                Context.ACTIVITY_SERVICE);
        String packageName = context.getApplicationContext().getPackageName();

        List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
        if (appProcesses == null) {
            return false;
        }

        for (RunningAppProcessInfo appProcess : appProcesses) {
            if (appProcess.processName.equals(packageName)
                    && appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
                return true;
            }
        }
        return false;
    }

    /**
     * 生成年月日
     * 
     * @param time
     **/
//    public static String timeStringAll(long time) {
//
//        // 按自定义格式SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//        SimpleDateFormat formatTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        Date currentTime = new Date(time);
//        return formatTime.format(currentTime);
//    }

    /**
     * 返回指定格式的时间
     * 
     * @return
     */
//    public static String timeClockString(String format) {
//        // 按自定义格式SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//        SimpleDateFormat formatTime = new SimpleDateFormat(format);
//        Date currentTime = new Date();
//        return formatTime.format(currentTime);
//    }

//    public static boolean isServiceRunning(Context mContext, String className) {
//        boolean isRunning = false;
//        ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
//        List<ActivityManager.RunningServiceInfo> serviceList = activityManager.getRunningServices(30);
//
//        if (!(serviceList.size() > 0)) {
//            return false;
//        }
//
//        for (int i = 0; i < serviceList.size(); i++) {
//            if (serviceList.get(i).service.getClassName().equals(className) == true) {
//                LogInfo.log("", "isServiceRunning name " + serviceList.get(i).service.getClassName());
//                isRunning = true;
//                break;
//            }
//        }
//        return isRunning;
//    }

    /**
     * 图片目录缓存大小
     * 
     * @param context
     * @return
     */
    public static String getCacheSize(Context context) {
        String fileSizeString = "0.00M";
        final String state = Environment.getExternalStorageState();
        if (state.equals(Environment.MEDIA_MOUNTED) && !state.equals(Environment.MEDIA_MOUNTED_READ_ONLY)) {
            File file = new File(FileUtils.getBitmapCachePath(context));
            if (file != null && file.exists()) {
                long size = 0;
                File flist[] = file.listFiles();
                for (int i = 0; i < flist.length; i++) {
                    if (flist[i].isDirectory()) {
                        size = size + getFileSize(flist[i]);
                    } else {
                        size = size + flist[i].length();
                    }
                }
                if (size > 0) {
                    DecimalFormat df = new DecimalFormat("#0.00");
                    fileSizeString = df.format((double) size / 1048576.0D) + "M";
                }
            }
        }
        return fileSizeString;
    }

    /**
     * 得到文件或文件夹大小
     * */
    public static long getFileSize(File f) {
        long size = 0;
        File flist[] = f.listFiles();
        for (int i = 0; i < flist.length; i++) {
            if (flist[i].isDirectory()) {
                size = size + getFileSize(flist[i]);
            } else {
                size = size + flist[i].length();
            }
        }
        return size;
    }

    /**
     * 判断当前应用程序是否处于后台
     */
    public static boolean isApplicationInBackground(final Context context) {
        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<RunningTaskInfo> tasks = am.getRunningTasks(1);
        if (!tasks.isEmpty()) {
            ComponentName topActivity = tasks.get(0).topActivity;
            if (!topActivity.getPackageName().equals(context.getPackageName())) {
                return true;
            }
        }
        return false;
    }

    /**
     * 判断应用是否已安装
     *
     * @param context
     * @param packageName
     * @return
     */
    public static boolean isInstalled(Context context, String packageName) {
        boolean hasInstalled = false;
        PackageManager pm = context.getPackageManager();
        List<PackageInfo> list = pm.getInstalledPackages(PackageManager.PERMISSION_GRANTED);
        for (PackageInfo p : list) {
            if (packageName != null && packageName.equals(p.packageName)) {
                hasInstalled = true;
                break;
            }
        }
        return hasInstalled;
    }
}
